<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // reduce统计字符串重复出现的次数
        /**
         * 第一步：将字符串转成数组，两种方式
         *          -> split()
         *          -> 字符串自身特性str[index],可以取到每一个字符，然后循环遍历添加到新数组中
         * 第二步：用reduce的对象键名唯一的方式，统计
         * 
          */
        // let str1 = "abcabccaaa";
        // let res1 = str1.split('');
        // console.log(res1);

        var str = "abcabccaaad";
        // console.log(new String('asdfgfdg'));
        // console.dir(new Function('a','b=3','return a+b'));
        // console.log(str[1])
        var arr = [];
        for(var i=0;i<str.length;i++){
            arr.push(str[i]);
        }
        console.log(arr);

        var res =  arr.reduce(function(pre,current){
            // pre[current] = 1;
            // {a:1,b:1,c:1}
            // 核心： 判断 current ：a b c 存不存在？如果不存在 初始化一个 a:1 b:1 c:1
            // 存在 在以前的基础上 加一 a:1 ++ --->a:2
            typeof pre[current] === "undefined"?pre[current]=1:pre[current]++;
            return pre;
        },{});
        console.log(res);



        // let res2 = res.join(''); //join是数组的方法，返回值是字符串
        // console.log(res2);
        
    </script>
</body>
</html>